package com.framework.doc;

import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 文件操作工具类,供CustomDoclet读取java文件使用
 */
public class FileUtils {

    /**
     * 获取文件夹中的所有文件绝对路径
     * @param directoryPath 需要遍历的文件夹路径
     * @return List<String> 文件绝对路径数组
     */
    public static List<String> getAllFilesName(String directoryPath) {
        final List<String> list = new ArrayList<>();
        File baseFile = new File(directoryPath);
        if (baseFile.isFile() || !baseFile.exists()) {
            return list;
        }
        File[] files = baseFile.listFiles();
        if (null == files || files.length == 0) {
            return list;
        }
        Arrays.asList(files).forEach(file -> {
            if (file.isDirectory()) {
                list.addAll(getAllFilesName(file.getAbsolutePath()));
            } else if (file.isFile()){
                list.add(file.getAbsolutePath());
            }
        });
        return list;
    }

}
